package com.ww.grtsmanager.mapper;

import com.ww.grtsmanager.bean.Teacher;
import com.ww.grtsmanager.vo.Conditions;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface TeacherMapper {
    /**
     * 添加讲师到数据库中
     * @param teacher 讲师对象
     * @return 大于0表示成功 小于0表示失败
     */
    int addTeacher(Teacher teacher);

    /**
     * 分页查询讲师信息
     * @param index 开始索引
     * @param limit 显示条数
     * @return 讲师集合或null
     */
    List<Teacher> getTeacherByPage(@Param("index") int index, @Param("limit") Integer limit, @Param("conditions") Conditions conditions);

    /**
     * 获取讲师总记录条数
     * @return 是这里有错误 因为 可以从下面看到 分页查询每页问题
     */
    int getTeacherCount(@Param("conditions") Conditions conditions);

    /**
     * 根据讲师id逻辑删除讲师信息
     * @param id 讲师id
     * @return 大于0成功 等于0失败
     */
    int deleteTeacher(Integer id);

    /**
     * 根据讲师id批量删除讲师信息
     * @param ids
     * @return 大于0成功 等于0失败
     */
    int deleteTeacherAll(@Param("ids") List<Integer> ids);

    /**
     * 根据讲师id查询讲师信息
     * @param id 讲师对象
     * @return 返回讲师对象或nul
     */
    Teacher getTeacher(Integer id);

    /**
     * 修改讲师
     * @param teacher 讲师对象
     * @return 大于0成功 等于0失败
     */
    int updateTeacher(Teacher teacher);


    List<Teacher> getTeacherAll();
}
